
import { lazyReportBatch } from "../report";
//FCP:FCP (First Contentful Paint) 是一个关键的网页性能指标，它测量从页面开始加载到屏幕上的"任何内容部分（例如文本、图像、SVG等）被渲染的时间"。
// FCP对于用户体验至关重要，因为它是用户第一次看到页面内容的时间点（1.8s）
export default function observeFCP():void{
  const PAINT_TYPE = 'paint';
  const FCP_NAME = 'first-contentful-paint';

    const entryHandler=(list:PerformanceObserverEntryList,observer:PerformanceObserver):void=>{
      for(const entry of list.getEntries()){
        if(entry.name===FCP_NAME){
          observer.disconnect();
          const json=entry.toJSON();
           console.log(json);
           const reportData={
            ...json,
            type:"performance",
            subType:entry.name,
            pageUrl:window.location.href
           }
           console.log(reportData);
           //TODO:上报数据
           //lazyReportBatch(reportData);
        }
      }
    }
    //统计和计算fcp的时间
    const observer=new PerformanceObserver(entryHandler);
    //buffered:true确保观察到所有paint事件,
    observer.observe({type:PAINT_TYPE,buffered:true});
}